home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c-part2 / 12510 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  1.6 KB

  1. Path: HOPPER.ACM.ORG!news
  2. From: varnk@e62.diebold.com (Ken Varn)
  3. Newsgroups: comp.lang.c
  4. Subject: Re: Reversing printf conversion
  5. Date: 1 Apr 1996 14:29:57 GMT
  6. Organization: Diebold
  7. Message-ID: <4jop95$an4@HOPPER.ACM.ORG>
  8. References: <4jkdgq$fds@netnews.upenn.edu>
  9. NNTP-Posting-Host: 199.218.232.47
  10. Mime-Version: 1.0
  11. Content-Type: Text/Plain; charset=US-ASCII
  12. X-Newsreader: WinVN 0.99.7
  13.  
  14. In article <4jkdgq$fds@netnews.upenn.edu>, fitz@force.stwing.upenn.edu 
  15. says...
  16. />
  17. />I need to 'undo' the following (read in the file, and place it back in 
  18. />'integer' from the file).
  19. />
  20. />static void WriteBigInteger (file, integer, integerLen)
  21. />FILE *file;
  22. />unsigned char *integer;
  23. />unsigned int integerLen;
  24. />{
  25. />  for (; integerLen > 0; integerLen--)
  26. />    fprintf (file, "%02x", (unsigned int)(*integer++));
  27. />}       
  28. />
  29. />
  30. />I have tried the following approach to no avail: 
  31. />
  32. />  unsigned char line[200]; /* number not impt */
  33. />  unsigned char *ptr;
  34. />  ptr=line;
  35. />
  36. />  fgets(line,200,file);
  37. />  for (; integerLen > 0; integerLen--){
  38. />        sprintf(ptr,"%02x",integer++);
  39. />        ptr++;
  40. />        ptr++;
  41. />  }
  42. />
  43. />
  44. />Is there a better way? (that works).  I have exhaustd over 16 hours on 
  45. />this one damn problem...I _KNOW_ I am doing this wrong somehow.
  46. />
  47.  
  48. I am not sure if I exactly get what you are trying to do, but I'll take a 
  49. stab at it.  If you are trying to duplicate your file write to a string, 
  50. change your code as follows.
  51.  
  52.   unsigned int integer[200]; /* number not impt */
  53.   int *ptr;
  54.  
  55.   ptr = integer;
  56.  
  57.   for (; integerLen > 0; integerLen--){
  58.         fscanf(file,"%2x",ptr++);
  59.   }
  60.  
  61.